package com.zxy.comtroller;

import com.zxy.entity.Product;
import com.zxy.vo.CollectionVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.List;

/**
 * @author: Zxy
 * @Date: 2021-06-09
 **/
@RestController
public class ProductController {

    private static final Logger log = LoggerFactory.getLogger(ProductController.class);

    @Value("${server.port}")
    private int port;

    @GetMapping("/product")
    public String product() {
        log.info("进入商品服务");
        return "product ok，当前服务提供端口" + port;
    }

    // 定义一个接收零散类型数据的接口 使用queryString
    @GetMapping("/test1")
    public String testQueryString(String name, Integer age) {
        System.out.println("name = " + name + ", age = " + age);
        return "数据接收成功";
    }

    // 定义一个接收零散类型数据的接口 使用路径传参
    @GetMapping("/test2/{name}/{age}")
    public String testPathVarible(@PathVariable("name") String name, @PathVariable("age") Integer age) {
        System.out.println("name = " + name + ", age = " + age);
        return "数据接收成功 " + port;
    }


    // 定义一个接收对象类型的参数接口
    @PostMapping("/test3")
    public String testJavaBean(@RequestBody Product product){
        System.out.println("product = " + product);
        return "对象类型数据接收成功";
    }

    // 定义一个接收数组类型的参数接口
    @GetMapping("/test4")
    public String testArrays(String[] ids){
        Arrays.stream(ids).forEach(System.out::println);
        return "数组类型数据接收成功";
    }

    // 定义一个接收集合类型的参数接口
    @GetMapping("/test5")
    public String testList(CollectionVo vo){
        vo.getIds().forEach(System.out::println);
        return "集合类型数据接收成功";
    }
}
